#ifndef NIVEL_H
#define	NIVEL_H

#include "Escenario.h"
#include "Historia.h"
#include "ISerializable.h"

using namespace TP::Serializacion;
using namespace TP::Juego;
using namespace TP::Juego::Arena;

namespace TP { namespace Juego {

class Nivel : public ISerializable {
public:

    Nivel();
    
    Nivel(unsigned id, unsigned anchura, unsigned altura, unsigned tiempo,
        const std::string &rutaImagenFondo);

    ~Nivel();

    unsigned getId() const;

    unsigned getTiempo() const;

    Escenario* getEscenario();
    
    Nivel* clonar();

    bool operator==(const Nivel &nivel);

    bool operator!=(const Nivel &nivel);
    
    virtual string aXML();
    
    virtual string aXML(const string& pPath);
    
    virtual void parseXML (const string& pDescriptor);
    
    virtual TiXmlElement* aElementoXML ();
    
    virtual void deElementoXML (TiXmlElement* pElemento);    

private:
    unsigned _id, _tiempo;
    Escenario* _escenario;
};
}}

#endif	/* NIVEL_H */